//package com.turing.post.thirdinterface.impl;
//
//import java.net.URL;
//import java.text.SimpleDateFormat;
//import java.util.List;
//
//import javax.ejb.Local;
//import javax.ejb.Remote;
//import javax.ejb.Stateless;
//import javax.xml.namespace.QName;
//import javax.xml.ws.Service;
//
//import turing.shwebservice.client.ArrayOfString;
//import turing.shwebservice.client.WebService1;
//import turing.shwebservice.client.WebService1Soap;
//
//import com.turing.post.cardmanagement.util.AppManTranBusiness;
//import com.turing.post.cardmanagement.util.AppManagement;
//import com.turing.post.salesmanage.util.GasAutoManagement;
//import com.turing.post.salesmanage.util.SalesManageApplicationException;
//import com.turing.post.salesmanage.util.SalesManageRespCode;
//import com.turing.post.util.PCPSApplicationException;
//import com.turing.post.util.PCPSUtil;
//
///**
// * JNDI thirdinterface.impl.SanHuanWsBusinessImpl
// * @author zxp
// * @Apr 11, 2013
// */
//@Stateless(mappedName = "thirdinterface.impl.SanHuanWsBusinessImpl")
//@Remote
//@Local
//public class SanHuanWsBusinessImpl implements AppManTranBusiness {
//
//	/**
//	 * 异常抛出方法
//	 * 
//	 * @param error
//	 * @throws PCPSApplicationException
//	 */
//	@SuppressWarnings("unused")
//	private void errException(String error) throws PCPSApplicationException {
//		throw new SalesManageApplicationException(
//				SalesManageApplicationException.ERRCODE_CATEGORY_APPLICATION,
//				SalesManageRespCode.SALESBUSINESS_ARGS_NULL, error);
//	}
//
//	/**
//	 * 卡发行前验证车架号是否通过
//	 */
//	@Override
//	public Object AppCardIssuePre(AppManagement am, String cardNo,
//			Object privobj) throws PCPSApplicationException {
//		ArrayOfString arrStrOf = null;
//		String name = cardNo;
//		GasAutoManagement gamg = (GasAutoManagement) privobj;
//		if (PCPSUtil.isEmpty(name) || privobj == null
//				|| PCPSUtil.isEmpty(gamg.getVIN())) {
//			throw new PCPSApplicationException("", "", "调用三环公司接口参数不全!");
//		}
//		try {
//			URL wsdlURL = new URL("http://localhost/Service1.asmx?WSDL");
//			QName serviceQName = new QName("http://turing.webservice.com/",
//					"WebService1");
//			Service service = WebService1.create(wsdlURL, serviceQName);
//			WebService1Soap wsp = service.getPort(WebService1Soap.class);
//			arrStrOf = wsp.openCardAuthentication(name, gamg.getVIN());
//		} catch (Exception e) {
//			PCPSUtil.Log("未连接到远程webservice服务!", e);
//			throw new PCPSApplicationException("", "", "未连接到远程webservice服务!");
//		}
//		if (arrStrOf == null) {
//			errException("三环返回数据为空!");
//		}
//		List<String> strArr = arrStrOf.getString();
//		if (strArr == null || strArr.size() < 1) {
//			errException("未获取到三环公司验证返回值!");
//		}
//		if (strArr.size() < 2) {
//			errException("三环公司返回最小数组长度应为2，当前返回：" + strArr.size());
//		}
//		if (strArr.get(0).equals(AppManagement.Failed)) {
//			errException("该车架号“" + gamg.getVIN() + "”不可开卡，错误原因："
//					+ strArr.get(1));
//		} else if (strArr.get(0).equals(AppManagement.Success)) {
//			if (strArr.size() != 7) {
//				errException("三环公司返回正确数组长度应为7，当前返回：" + strArr.size());
//			}
//			gamg.setAutoNumber(strArr.get(1));
//			gamg.setGasCylinderNo(strArr.get(2));
//			try {
//				gamg.setGasCylinderNum(Integer.parseInt(strArr.get(3)));
//			} catch (Exception e) {
//				errException("解析三环公司返回数据失败，气瓶数量“" + strArr.get(3) + "”不为整数!");
//			}
//			gamg.setRegNo(strArr.get(4));
//			gamg.setAutoType(strArr.get(5));
//			try {
//				SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
//				gamg.setExpiredDate(sdf.parse(strArr.get(6)));
//			} catch (Exception e) {
//				errException("解析三环公司返回数据失败，到检日期“" + strArr.get(6) + "”不为时间格式!");
//			}
//		}
//		// 返回数据
//		return gamg;
//	}
//
//	/**
//	 * 卡发行成功后更新三环公司系统数据
//	 */
//	@Override
//	public void AppCardIssuePost(AppManagement am, String cardNo, Object privobj)
//			throws PCPSApplicationException {
//		ArrayOfString arrStrOf = null;
//		GasAutoManagement gamg = (GasAutoManagement) privobj;
//		if (PCPSUtil.isEmpty(cardNo) || privobj == null
//				|| PCPSUtil.isEmpty(gamg.getRegNo())) {
//			throw new PCPSApplicationException("", "", "调用三环公司接口参数不全!");
//		}
//		try {
//			URL wsdlURL = new URL("http://localhost/Service1.asmx?WSDL");
//			QName serviceQName = new QName("http://turing.webservice.com/",
//					"WebService1");
//			Service service = WebService1.create(wsdlURL, serviceQName);
//			WebService1Soap wsp = service.getPort(WebService1Soap.class);
//			arrStrOf = wsp.openCardRegistration(cardNo, gamg.getRegNo());
//		} catch (Exception e) {
//			PCPSUtil.Log("未连接到远程webservice服务!", e);
//			throw new PCPSApplicationException("", "", "未连接到远程webservice服务!");
//		}
//		if (arrStrOf == null) {
//			errException("三环返回数据为空!");
//		}
//
//		List<String> strArr = arrStrOf.getString();
//		if (strArr == null || strArr.size() < 1) {
//			errException("未获取到三环公司验证返回值!");
//		}
//		if (strArr.size() < 3) {
//			errException("三环公司返回最小数组长度应为2，当前返回：" + strArr.size());
//		}
//		if (strArr.get(0).equals(AppManagement.Failed)) {
//			errException("该卡号“" + cardNo + "”远程调用三环系统失败，错误原因：" + strArr.get(1));
//		}
//	}
//
//	/**
//	 * 三环特殊业务
//	 */
//	@Override
//	public void AppCardSpecial(AppManagement am, String cardNo,
//			String tranType, Object privobj) throws PCPSApplicationException {
//		ArrayOfString arrStrOf = null;
//		if (PCPSUtil.isEmpty(tranType) || PCPSUtil.isEmpty(cardNo)) {
//			throw new PCPSApplicationException("", "", "调用三环公司接口参数不全!");
//		}
//		WebService1Soap wsp = null;
//		try {
//			URL wsdlURL = new URL("http://localhost/Service1.asmx?WSDL");
//			QName serviceQName = new QName("http://turing.webservice.com/",
//					"WebService1");
//			Service service = WebService1.create(wsdlURL, serviceQName);
//			wsp = service.getPort(WebService1Soap.class);
//		} catch (Exception e) {
//			PCPSUtil.Log("未连接到远程webservice服务!", e);
//			throw new PCPSApplicationException("", "", "未连接到远程webservice服务!");
//		}
//		// 挂失
//		if (tranType.equals(AppManagement.App_tranType_Loss)) {
//			arrStrOf = wsp.cardLoss(cardNo);
//		}
//		// 解挂失
//		if (tranType.equals(AppManagement.App_tranType_UnLoss)) {
//			arrStrOf = wsp.unCardLoss(cardNo);
//		}
//		// 赎回
//		if (tranType.equals(AppManagement.App_tranType_Redemp)) {
//			// return new String[] { "00" };
//		}
//		// 换卡
//		if (tranType.equals(AppManagement.App_tranType_Change)) {
//			GasAutoManagement gamg = (GasAutoManagement) privobj;
//			arrStrOf = wsp.changeCard(cardNo, gamg.getCardNo());
//		}
//
//		if (arrStrOf == null) {
//			errException("三环返回数据为空!");
//		}
//		List<String> arrStr = arrStrOf.getString();
//		if (arrStr == null || arrStr.size() < 1) {
//			errException("未获取到三环公司验证返回值!");
//		}
//		if (arrStr.size() < 3) {
//			errException("三环公司返回最小数组长度应为2，当前返回：" + arrStr.size());
//		}
//		if (arrStr.get(0).equals(AppManagement.Failed)) {
//			errException("该卡号“" + cardNo + "”远程调用三环系统失败，错误原因：" + arrStr.get(1));
//		}
//	}
//}
